package com.atguigu.lease.web.app.service.impl;

import com.aliyun.dysmsapi20170525.Client;
import com.aliyun.dysmsapi20170525.models.SendSmsRequest;
import com.atguigu.lease.web.app.service.SmsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class SmsServiceImpl implements SmsService {

    @Autowired
    private Client client;

    /**
     * 发送短信验证码
     *
     * @param phone 接收短信的电话号码
     * @param code  验证码
     *
     * 此方法构造一个发送短信的请求，设置电话号码、签名名称、模板代码和模板参数（验证码），
     * 然后调用阿里云的发送短信服务如果发送过程中出现异常，将抛出运行时异常
     */
    @Override
    public void sendCode(String phone, String code) {
        // 创建发送短信请求对象
        SendSmsRequest smsRequest = new SendSmsRequest();
        // 设置接收短信的电话号码
        smsRequest.setPhoneNumbers(phone);
        // 设置短信签名名称
        smsRequest.setSignName("阿里云短信测试");
        // 设置短信模板代码
        smsRequest.setTemplateCode("SMS_154950909");
        // 设置短信模板参数，即验证码
        smsRequest.setTemplateParam("{\"code\":\"" + code + "\"}\n");
        try {
            // 发送短信
            client.sendSms(smsRequest);
        } catch (Exception e) {
            // 如果发送短信时出现异常，抛出运行时异常
            throw new RuntimeException(e);
        }
    }
}
